package main

// <-------------------------------- 数据库部分 ------------------------------------------>
import (
	"database/sql"
	"fmt"

	_ "github.com/go-sql-driver/mysql"
)

/*
	功能：查询函数
	参数： 1. db 数据库连接
		  2. sql_txt 查询语句
		  3. key  查询的关键字
	返回值：1. rows  查询到的结果集
		  2.  myerr 返回查询的错误
*/
func sql_query(db *sql.DB, sql_txt string, key string) (*sql.Rows, error) {
	var myerr error
	var rows *sql.Rows = new(sql.Rows)
	/*
	   第一个参数:连接什么数据库
	   第二个参数:连接字符串
	   语法:数据库登录用户名:密码@tcp(mysql主机ip:端口)/database名称
	*/
	/*
	   准备处理SQL语句
	   支持占位符,防止SQL注入
	*/
	stmt, err := db.Prepare(sql_txt)
	//错误处理
	if err != nil {
		fmt.Println("预处理失败", err)
		return rows, err
	}
	//关闭对象
	defer func() {
		if stmt != nil {
			stmt.Close()
			//	fmt.Println("stmt关闭")
		}
	}()
	/*
	   Exec() 参数为不定项参数,对应占位符?个数
	*/
	rows, err = stmt.Query(key)

	if err != nil {
		myerr = err
	}

	return rows, myerr
}
